package com.zero.guava.samples.SettableFuture;

import com.google.common.util.concurrent.SettableFuture;
import org.junit.Test;

/**
 * 个用于创建SettableFuture实例的静态 create()方法；
 * set方法用于设置Future的值，返回是否设置成功，如果Future的值已经被设置或任务被取消，会返回 false；
 * setException与set方法类似，用于设置Future返回特定的异常信息，返回exception是否设置成功。
 */
public class SettableFutureDemo {

    @Test
    public void testSettableFuture(){
        SettableFuture<String> sf = SettableFuture.create();
        //设置成功后返回指定的信息
        sf.set("SUCCESS");
        //设置失败后返回特定的异常信息
        sf.setException(new RuntimeException("Fails"));
    }
}
